Conventional irrigation controllers water a set of irrigation zones in accordance with a time schedule programmed by an operator. Such programming is typically guesswork and cannot adapt the controller to changing weather or soil conditions without an impractical amount of reprogramming.
It has previously been proposed to associate a moisture sensor with a valve watering a given zone, and to allow scheduled watering only until the soil of the zone reaches a pre-selected moisture content, or conversely to disallow the initiation of a standard irrigation cycle if the soil of that zone, or a representative zone, is above a pre-selected moisture content. This does prevent over-watering on cool or rainy days, but it does not continually adjust the irrigation system to maintain an ideal level of soil moisture.
It has also been proposed to vary the runtime of a controller in response to daily measured or predicted climatological parameters, but in such a system the runtime is expectation-driven rather than being driven by actual soil moisture conditions.